Everything about Object Database totally explained
In an
object database (also
object oriented database), information is represented in the form of
objects as used in
object-oriented programming. When database capabilities are combined with object programming language capabilities, the result is an object database management system (ODBMS). An ODBMS makes database objects appear as programming language objects in one or more object programming languages. An ODBMS extends the programming language with transparently persistent data, concurrency control, data recovery, associative queries, and other capabilities.
Some object-oriented databases are designed to work well with object-oriented programming languages such as
Python,
Java,
C#,
Visual Basic .NET,
C++ and
Smalltalk. Others have their own programming languages. ODBMSs use exactly the same model as object-oriented programming languages.
Object databases are generally recommended when there's a business need for high performance processing on complex data.
History
Object Database management systems grew out of research during the early to mid-
1970s into having intrinsic database management support for graph-structured objects. The term "object-oriented database system" first appeared around
1985 . Notable research projects included Encore-Ob/Server (
Brown University), EXODUS (
University of Wisconsin), IRIS (Hewlett-Packard), ODE (
Bell Labs), ORION (
Microelectronics and Computer Technology Corporation or MCC), Vodak (GMD-IPSI), and Zeitgeist (Texas Instruments). The ORION project had more published papers than any of the other efforts. Won Kim of MCC compiled the best of those papers in a book published by The MIT Press.
Early commercial products included
Gemstone (Servio Logic, name changed to GemStone Systems), Gbase (Graphael), and Vbase (Ontologic). The early to mid-1990s saw additional commercial products enter the market. These included ITASCA (Itasca Systems), Jasmine (Fujitsu, marketed by Computer Associates), Matisse (Matisse Software),
Objectivity/DB (Objectivity, Inc.),
ObjectStore (
Progress Software, acquired from eXcelon which was originally Object Design), ONTOS (Ontos, Inc., name changed from Ontologic), O
2 (O
2 Technology, merged with several companies, acquired by Informix, which was in turn acquired by
IBM), POET (now FastObjects from Versant which acquired Poet Software), and Versant Object Database (Versant Corporation). Some of these products remain on the market and have been joined by new open source and commercial products such as
InterSystems CACHÉ (see the product listings below).
Object database management systems added the concept of
persistence to object programming languages. The early commercial products were integrated with various languages: GemStone (
Smalltalk), Gbase (
LISP), and Vbase (
COP). For much of the 1990s,
C++ dominated the commercial object database management market. Vendors added
Java in the late 1990s and more recently,
C#.
Starting in
2004, object databases have seen a second growth period when
open source object databases emerged that were widely affordable and easy to use, because they're entirely written in OOP languages like Java or C#, such as
db4o (db4objects) and
Perst (McObject). Recently another open source object database Magma has been in development. Magma is written in
Squeak. Commercial products such as
InterSystems CACHÉ also appear to be gaining acceptance.
Adoption of object databases
Object databases based on persistent programming acquired a niche in application areas such as
engineering and
spatial databases,
telecommunications, and scientific areas such as
high energy physics and
molecular biology. They have made little impact on mainstream commercial data processing, though there's some usage in specialized areas of
financial services . It is also worth noting that object databases held the record for the World's largest database (being first to hold over 1000 Terabytes at Stanford Linear Accelerator Center
"Lessons Learned From Managing A Petabyte"
) and the highest ingest rate ever recorded for a commercial database at over one Terabyte per hour.
Another group of object databases focuses on embedded use in devices, packaged software, and realtime systems.
Technical features
Most object databases also offer some kind of
query language, allowing objects to be found by a more
declarative programming approach. It is in the area of object query languages, and the integration of the query and navigational interfaces, that the biggest differences between products are found. An attempt at standardization was made by the
ODMG with the
Object Query Language, OQL.
Access to data can be faster because
joins are often not needed (as in a tabular implementation of a
relational database). This is because an object can be retrieved directly without a search, by following pointers. (It could, however, be argued that "joining" is a higher-level abstraction of pointer following.)
Another area of variation between products is in the way that the schema of a database is defined. A general characteristic, however, is that the programming language and the database schema use the same type definitions.
Multimedia applications are facilitated because the class methods associated with the data are responsible for its correct interpretation.
Many object databases offer support for
versioning. An object can be viewed as the set of all its versions. Also, object versions can be treated as objects in their own right. Some object databases also provide systematic support for
triggers and constraints which are the basis of
active databases.
Advantages and disadvantages
Benchmarks between ODBMSs and
RDBMSs have shown that ODBMS can be clearly superior for certain kinds of tasks. The main reason for this is that many operations are performed using
navigational rather than
declarative interfaces, and navigational access to data is usually implemented very efficiently by following pointers.
Critics of
navigational database-based technologies like ODBMS suggest that pointer-based techniques are optimized for very specific "search routes" or viewpoints. However, for general-purpose queries on the same information, pointer-based techniques will tend to be slower and more difficult to formulate than relational. Thus, navigation appears to simplify specific known uses at the expense of general, unforeseen, and varied future uses.
Other things that work against ODBMS seem to be the lack of
interoperability with a great number of tools/features that are taken for granted in the SQL world including but not limited to industry standard
connectivity, reporting tools,
OLAP tools, and
backup and
recovery standards. Additionally, object databases lack a formal mathematical foundation, unlike the
relational model, and this in turn leads to weaknesses in their query support. However, this objection is offset by the fact that some ODBMSs fully support SQL in addition to navigational access, for example
Objectivity/SQL++,
Matisse, and
InterSystems CACHÉ. Effective use may require compromises to keep both paradigms in sync.
In fact there's an intrinsic tension between the notion of
encapsulation, which hides data and makes it available only through a published set of interface methods, and the assumption underlying much database technology, which is that data should be accessible to queries based on data content rather than predefined access paths.
Database-centric thinking tends to view the world through a declarative and attribute-driven viewpoint, while OOP tends to view the world through a behavioral viewpoint. This is one of the many
impedance mismatch issues surrounding OOP and databases.
Although some commentators have written off object database technology as a failure, the essential arguments in its favor remain valid, and attempts to integrate database functionality more closely into object programming languages continue in both the research and the industrial communities.
Standards
The
Object Data Management Group (ODMG) was a consortium of object database and object-relational mapping vendors, members of the academic community, and interested parties. Its goal was to create a set of specifications that would allow for portable applications that store objects in database management systems. It published several versions of its specification. The last release was ODMG 3.0. By 2001, most of the major object database and object-relational mapping vendors claimed conformance to the ODMG Java Language Binding. Compliance to the other components of the specification was mixed. In 2001, the ODMG Java Language Binding was submitted to the
Java Community Process as a basis for the
Java Data Objects specification. The ODMG member companies then decided to concentrate their efforts on the Java Data Objects specification. As a result, the ODMG disbanded in 2001.
Many object database ideas were also absorbed into
SQL:1999 and have been implemented in varying degrees in
object-relational database products.
In 2005 Cook, Rai, and Rosenberger proposed to drop all standardization efforts to introduce additional object-oriented query APIs but rather use the OO programming language itself, for example, Java and .NET, to express queries. As a result,
Native Queries emerged. Similarly, Microsoft announced
Language Integrated Query (LINQ) and DLINQ, an implementation of LINQ, in September 2005, to provide close, language-integrated database query capabilities with its programming languages C# and VB.NET 9.
In February 2006, the
Object Management Group (OMG) announced that they'd been granted the right to develop new specifications based on the ODMG 3.0 specification and the formation of the Object Database Technology Working Group (ODBT WG). The ODBT WG plans to create a set of standards that incorporates advances in object database technology (for example, replication), data management (for example, spatial indexing), and data formats (for example, XML) and to include new features into these standards that support domains where object databases are being adopted (for example, real-time systems).
References and notes
Further Information
Get more info on 'Object Database'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://object_database.totallyexplained.com">Object database Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |